package org.muyu.example2;

import org.muyu.example2.component.Adapter220V;
import org.muyu.example2.component.Target;

/**
 * 结构型模式 => 适配器模式实例
 *
 * 组成部件
 * 1. 适配接口【Target】 => 将原Adaptee只能输出220V的插座
 * 2. 已经存在的接口【Adaptee】 => PowerPort220V 原有插头只能输出220V
 * 3. 适配器【Adapter】 => 将原来只能输出220V的插座适配为110V
 *
 * 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于不兼容而不能一起工作的那些类可以一起工作
 *
 * 案例理解
 * 1.最开始只存在一个PowerPort220V插头，这个插头只能输出220V的电源
 * 2.但是现在业务需要一个输出110V的电源，Target就描述了这个需求
 * 3.Adapter220V根据Target的要求，通过继承的方式，持有了PowerPort220V的对象，并重写了Target的接口来实现Convert_110v方法
 * 4.Client通过实例化Adapter220V，并调用Convert_110v方法，就实现了将原来只能输出220V的插头适配为110V的功能
 */
public class Client {
    public static void main(String[] args) {
        Target target = new Adapter220V();
        target.Convert_110v();
    }
}
